package com.jyserver.common.utils;

import com.alibaba.fastjson.JSONArray;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import static java.lang.Integer.parseInt;

public class JyString {
    public static String[] allStr = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
    public static java.lang.String[] allletter = new java.lang.String[]{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};

    public static String[] allNumber = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};


    public String[] getAllStr() {
        return allStr;
    }

    public static String[] arraySort(String[] input) {
        /**
         * @Description ：字符数组排列
         * @Method ： arraySort
         * @Author ： jy
         * @Version ： 1.0
         * @param input
         * @Return ： java.lang.String[]
         * @Exception ：
         * @Date ： 2019/8/17 15:39
         */
        for (int i = 0; i < input.length - 1; i++) {
            for (int j = 0; j < input.length - i - 1; j++) {
                if (input[j].compareTo(input[j + 1]) > 0) {
                    String temp = input[j];
                    input[j] = input[j + 1];
                    input[j + 1] = temp;
                }
            }
        }
        return input;
    }

    public static JSONArray arraySort(JSONArray array) {
        /**
         * @Description ：字符数组排列
         * @Method ： arraySort
         * @Author ： jy
         * @Version ： 1.0
         * @param input
         * @Return ： java.lang.String[]
         * @Exception ：
         * @Date ： 2019/8/17 15:39
         */
        String[] input = new String[array.size()];
        for (int i = 0; i < array.size(); i++) {
            input[i] = String.valueOf(array.get(i));
        }
        String[] reslut = arraySort(input);
        for (int i = 0; i < reslut.length; i++) {
            array.set(i, reslut[i]);
        }
        return array;
    }

    //    去除空格
    public static String removeInternalBlank(String s) {
        // System.out.println("bb:" + s);
        Pattern p = Pattern.compile("\\s*|\t|\r|\n");
        Matcher m = p.matcher(s);
        char[] str = s.toCharArray();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length; i++) {
            if (str[i] == ' ') {
                sb.append(' ');
            } else {
                break;
            }
        }
        String after = m.replaceAll("");
        return (sb.toString() + after).replaceAll(" ", "");
    }


    public void setAllStr(String[] allStr) {
        this.allStr = allStr;
    }

    public static String getrandomStr(int number) {
        /**
         *@Description :获得随机字符
         */
        String str = "";
        int n = allStr.length;
        for (int i = 0; i < number; i++) {
            str = str + allStr[(int) (Math.random() * (n))];
        }
        return str;
    }

    public static String getrandomNumber(int number) {
        /**
         *@Description :获得随机数集
         */
        String str = "" + (1 + (int) (Math.random() * (9)));
        int n = allNumber.length;
        for (int i = 0; i < number - 1; i++) {
            int a = (int) (Math.random() * (n));
            str = str + allNumber[a];
        }
        return str;
    }

    public static List getletterList(String v) {
        /**
         *@Description :获得字母
         */
        List<String> list = new ArrayList<String>();
        int i = -1;
        String s = "";
        boolean f = false;
        while (i < v.length()) {
            i = i + 1;

            try {
                String item = v.substring(i, i + 1);
                for (int n = 0; n < allletter.length; n++) {
                    if (allletter[n].equals(item)) {
                        list.add(item);
                        break;
                    }
                }
                f = true;
            } catch (Exception e) {
                f = false;
            }
        }
        return list;
    }

    public static List tonumberArray(String v) {
        /**
         *@Description :获得数字表
         */
        List<String> list = new ArrayList<String>();
        int i = -1;
        String s = "";
        boolean f = false;
        while (i < v.length()) {
            i = i + 1;
            try {
                if (".".equals(v.substring(i, i + 1)) && s.length() > 0) {
                    s = s + v.substring(i, i + 1);
                } else {
                    s = s + parseInt(v.substring(i, i + 1));
                }
                f = true;
            } catch (Exception e) {
                if (f) {
                    list.add(s);
                }
                s = "";
                f = false;
            }
        }
        return list;
    }

    public static String getrandomStr() {
        /**
         *@Description :获得随机字符
         */
        String str = "";
        int n = allStr.length;
        int number = (int) (1 + Math.random() * (n));
        for (int i = 0; i < number; i++) {
            str = str + allStr[(int) (Math.random() * (n))];
        }
        return str;
    }
}
